void main() {
  // 创建猫
  Cat cat = Cat();
  cat.name = 'Tom';
  print(cat.name);

  cat.eat();
  cat.walk();

  // 创建鱼
  Fish fish = Fish();
  fish.name = 'Nemo';
  print(fish.name);

  fish.eat();
  fish.swim();
}

class Cat extends Animal {
  void walk() {
    print('walk');
  }
}

class Fish extends Animal {
  void swim() {
    print('swim');
  }
}

// 定义父类，父类里面有其他类都要的属性和方法
// 使用继承，让子类继承父类，子类就可以使用父类的属性和方法
class Animal {
  String? name;

  void eat() {
    print('eat');
  }
}

// 继承的特点：
/* 
  1. Dart 的继承是单继承，一个字类只能有一个父类
  2. 子类只会继承父类里面可见的属性和方法，不会继承私有属性和方法
  3. 子类只会继承父类默认的构造函数，不会继承其他构造函数
  4. 子类可以重写父类的方法，也可以使用 super 调用父类方法
 */


